package com.lmy.the.testabc;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Random;

public class ChoseActivity extends AppCompatActivity implements View.OnClickListener {

    private View round_1;
    private View round_2;
    private View round_3;
    private View round_4;
    private View round_5;

    //存储汤圆种类的集合<种类序号,对应汤圆>  (此集合不可修改)
    private LinkedHashMap<Integer,Round> colorMap=new LinkedHashMap<>();

    //汤圆的集合(以序号方式存储),要用的话拿着序号到种类集合中比对
    private List<Integer> countList=new ArrayList<>();

    //是不是最后一个
    private boolean isEnd=false;
    //要不要去最后一个界面
    private boolean gotoEnd=false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chose);

        //添加4个汤圆
        countList.add(1);
        countList.add(2);
        countList.add(3);
        countList.add(0);

        //初始化汤圆种类(汤圆序号,汤圆对象)
        colorMap.put(0,new Round(R.mipmap.round_black,"是芝麻味道的汤圆!\n吃了会少掉头发"));
        colorMap.put(1,new Round(R.mipmap.round_pink,"是草莓味的汤圆(为什么会有这种味道啊?)\n吃了会甜甜蜜蜜的度过元宵节!"));
        colorMap.put(2,new Round(R.mipmap.round_yellow,"是柠檬味道的汤圆(好奇怪的味道qaq)\n驱散今年的厄运"));
        colorMap.put(3,new Round(R.mipmap.round_purple,"是紫薯味道的汤圆(这个还行)\n紫色代表智慧与洞察力，愿你在人生的道路上智慧无限"));

        //初始化组件
        round_1 = findViewById(R.id.round_1);
        round_2 = findViewById(R.id.round_2);
        round_3 = findViewById(R.id.round_3);
        round_4 = findViewById(R.id.round_4);
        round_5 = findViewById(R.id.round_5);

        round_1.setOnClickListener(this);
        round_2.setOnClickListener(this);
        round_3.setOnClickListener(this);
        round_4.setOnClickListener(this);
        round_5.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        //如果要去最后一个页面,就跳转
        if (gotoEnd){
            Intent intent=new Intent(ChoseActivity.this, EndActivity.class);
            startActivity(intent);
        }

        //如果汤圆数为0,说明接下来的是最后一个了
        if (countList.size()==0){
            isEnd=true;
        }

        //如果是最后一个,点击后执行特殊操作
        if (isEnd){
            endHope(view);
            return;
        }

        //获取点击视图的id (好像没用)
        int id = view.getId();
        //吃掉这个视图
        eat(view);

        //让这个视图不能点击
        view.setClickable(false);
    }

    //最后一个汤圆的特殊操作
    public void endHope(View view){
        //弹出提示
        showAlertDialog(ChoseActivity.this,"???似乎有什么东西滚过去了???\n再看看?");
        //切换背景
        view.setBackgroundResource(R.drawable.wdf);
        //接下来要前往最后一个页面了
        gotoEnd=true;
    }

    //吃汤圆方法(传入视图)
    public void eat(View view){

        //随机获取一个颜色的汤圆(序号)
        int key=getColor();

        //根据随机获取的汤圆序号从汤圆种类集合中拿到对应的汤圆
        Round round = colorMap.get(key);

        //改变这个视图的背景图片(为吃掉后的图片)
        view.setBackgroundResource(round.getId());

        //弹出提示窗口(传入上下文,)
        showAlertDialog(ChoseActivity.this,round.getStr());
    }

    //获取颜色序号方法
    public int getColor(){

        //获取随机数对象
        Random r=new Random();

        //随机抽一个颜色的汤圆(序号)
        int key=r.nextInt(countList.size());

        //移除这个汤圆
        countList.remove(key);

        //返回汤圆序号
        return key;
    }

    //弹出提示窗口方法(传入上下文,要提示的字符串)
    public void showAlertDialog(Context context, String str) {
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setMessage(str)
                .setPositiveButton("oh,nice!!!", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        dialog.dismiss(); // 关闭提示窗口
                    }
                });
        AlertDialog dialog = builder.create();
        dialog.show();
    }

}